//===========================================================
//					xv_map
//
//	Работа с локальной картой
//===========================================================

#pragma once

#include "es_tps.h"
#include "xv_obj.h"

// Класс локальной карты
class cLocalMap
{
private:
	int width;	// Ширина
	int height;	// Высота
	string name;	// Название

	vector<cTile *>tiles;	// Тайлы
	vector<cCreature *>creatures;	// Существа

public:
	cLocalMap(int nw, int nh, string nname)	// Конструктор
	{
		width = nw;
		height = nh;
		name = nname;
		tiles.clear();
		creatures.clear();

		// DEBUG
		for ( int i = 0;i < width;i++ )
			for ( int j = 0;j < height;j++ )
			{
				cTile *newtile;

				switch ( rand()%12 )
				{
					case 0:
					case 1:
						newtile = new cTile(i*64, j*64, "grass_daisies", true);
						break;
					case 2:
						newtile = new cTile(i*64, j*64, "grass_rflowers", false);
						break;
					case 3:
						newtile = new cTile(i*64, j*64, "grass_leaves", true);
						break;
					default:
						newtile = new cTile(i*64, j*64, "grass", true);
						break;
				}

				tiles.push_back(newtile);
			}

		cCreature *newcreature = new cCreature(256, 256, "BEAR", "Медведь-шатун", 3);
		Player = newcreature; 
		creatures.push_back(newcreature);
	}

	void Draw();	// Отрисовка
	cTile *getTile(int x, int y);	// Получение тайла по его позиции
	cCreature *getCreature(int x, int y);	// Получение существа по его позиции
	
	int getWidth();	int getHeight(); string getName();	// Получение значений
};

// Текущая карта
extern cLocalMap *LocalMap;
